From: Alessandro Bono Date: Sat, 14 Jan 2023 16:00:42 +0000 (+0100) Subject: dash: Connect before destroying X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~405^2^2~168 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=325755e1c3fc84941fa05349fda185cf4212edf3;p=gnome-shell.git dash: Connect before destroying Since commit 7bd98f3f5fb7e0d1220646b8a4ee7073534a8e8f animateOutAndDestroy() destroys the placeholder right away when animations are disabled. Connect to the destroy signal before calling the function. This fixes the following error: Gjs-CRITICAL **: 16:51:35.195: Object .Gjs_ui_dash_DragPlaceholderItem (0x55b9a946da20), has been already disposed — impossible to connect to any signal on it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs. == Stack trace for context 0x55b9a70d08f0 == #0 7ffe161bd070 b resource:///org/gnome/shell/ui/dash.js:835 (df3d61d32e0 @ 98) #1 7ffe161bd170 b resource:///org/gnome/shell/ui/dash.js:901 (df3d61d33d0 @ 779) #2 7ffe161bd290 b resource:///org/gnome/shell/ui/dnd.js:562 (3d4da0cfd420 @ 909) #3 7ffe161bd360 b self-hosted:1115 (3d4da0c7ef10 @ 407) Part-of: --- diff --git a/js/ui/dash.js b/js/ui/dash.js index d546ee255..1514d2999 100644 --- a/js/ui/dash.js +++ b/js/ui/dash.js @@ -831,10 +831,10 @@ var Dash = GObject.registerClass({ _clearDragPlaceholder() { if (this._dragPlaceholder) { this._animatingPlaceholdersCount++; - this._dragPlaceholder.animateOutAndDestroy(); this._dragPlaceholder.connect('destroy', () => { this._animatingPlaceholdersCount--; }); + this._dragPlaceholder.animateOutAndDestroy(); this._dragPlaceholder = null; } this._dragPlaceholderPos = -1;